"""
-*- coding:utf-8 -*-
__project__ = 'le-bo16'
__file_name__ = 'rickey'
__author__ = 'RickeyTing'
__time__ = '2020/11/21 16:36'
__product_name = PyCharm
# code is far away from bugs with the god animal protecting
    I love animals. They taste delicious.
              ┏┓      ┏┓
            ┏┛┻━━━┛┻┓
            ┃        ┃
            ┃  ┳┛  ┗┳  ┃
            ┃      ┻      ┃
            ┗━┓      ┏━┛
                ┃      ┗━━━┓
                ┃  神兽保佑    ┣┓
                ┃　永无BUG！   ┏┛
                ┗┓┓┏━┳┓┏┛
                  ┃┫┫  ┃┫┫
                  ┗┻┛  ┗┻┛
"""

#  1，如何在一个函数内部修改全局变量
# 使用global修改局部变量为全局变量；如：
global name
name = 'xiaoMing'
print(name)


# 2，用lambda函数实现两个数相乘

i = lambda a ,b : a*b
print(i(5,4))

#3，列表推导式求列表所有奇数并构造新列表，a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print([i for i in range(1,10) if i % 2 != 0])

#4，编写学生信息卡系统

studentMenu = []
def main():
    while True:
        printMenu()
        key = int(input("请选择系统功能数字："))   #  这里遇到一个坑，，，，忘了些int类型，导致整个方法陷入死循环

        if key == 1:
            Addinfo() # 添加学生信息
        elif key ==2:
            ModifystudentMenu() #修改学生信息
        elif key ==3:
            Delinfo()  #删除学生信息
        elif key ==4:
            Showinfo()  #查看所有学生信息
        elif key ==5:
            Saveinfo()  #保存到系统中
        elif key ==6:   #退出学生系统！
            QuitConfirm =input('确定要退出吗？(Yes or No): ')
            if QuitConfirm == 'Yes':
                break
            else:
                print('请重新输入选择：')

            # input('\n\n回车键继续!')

#打印输出提示：
def printMenu():
    print("=============================")
    print("========学生信息管理系统========")
    print("=========1.添加学生信息========")
    print("=========2.修改学生信息========")
    print("=========3.删除学生信息========")
    print("=======4.显示所有学生信息=======")
    print("========5.保存数据到系统========")
    print("=========6.退出系统!==========")


#添加学生信息
def Addinfo():
    name = str(input("请输入学生的姓名："))
    sex = input('请输入学生的性别：')
    telNo = int(input('请输入学生的联系方式：'))
    newInfo = {}
    newInfo['name'] = name
    newInfo['sex'] = sex
    newInfo['telNo'] = telNo
    studentMenu.append(newInfo)
    return len(studentMenu) + 1

#保存到系统中
def Saveinfo():
    file = open('test.py','w')
    file.write(str(studentMenu))
    file.close()


#修改学生信息
def ModifystudentMenu():
    stuId = int(input('请输入学生的校内编号 '))
    newName = str(input('请输入新的学生姓名：'))
    newSex = input('请输入新学生的性别：')
    newtelNo = int(input('请输入新学生联系方式：'))
    studentMenu[stuId]['name'] = newName  #  运行时报错 ：list index out of range  需要讲解
    studentMenu[stuId]['sex'] = newSex
    studentMenu[stuId]['telNo'] = newtelNo
    studentMenu.append(stuId)

#删除学生信息
def Delinfo():
    num = int(input('请输入要删除的学生编号：'))
    del studentMenu[num]
    return len(studentMenu) - 1

# 显示所有学生信息
def Showinfo():
    print('_'*100)
    print('学生信息如下： ')
    i = 1
    for showinfo in studentMenu:
        print('%d %s %s %s' %(i,showinfo['name'],showinfo['sex'],showinfo['telNo']))
        i += 1
    print('_'*100)


#调用此方法
main()












